/*
 * XML Type:  RecurringPaymentTransactionRequest
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.RecurringPaymentTransactionRequest
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04.impl;
/**
 * An XML RecurringPaymentTransactionRequest(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public class RecurringPaymentTransactionRequestImpl extends net.ofx.types.x2003.x04.impl.AbstractTransactionRequestImpl implements net.ofx.types.x2003.x04.RecurringPaymentTransactionRequest
{
    
    public RecurringPaymentTransactionRequestImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName RECPMTRQ$0 = 
        new javax.xml.namespace.QName("", "RECPMTRQ");
    private static final javax.xml.namespace.QName RECPMTMODRQ$2 = 
        new javax.xml.namespace.QName("", "RECPMTMODRQ");
    private static final javax.xml.namespace.QName RECPMTCANCRQ$4 = 
        new javax.xml.namespace.QName("", "RECPMTCANCRQ");
    
    
    /**
     * Gets the "RECPMTRQ" element
     */
    public net.ofx.types.x2003.x04.RecurringPaymentRequest getRECPMTRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentRequest)get_store().find_element_user(RECPMTRQ$0, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "RECPMTRQ" element
     */
    public boolean isSetRECPMTRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(RECPMTRQ$0) != 0;
        }
    }
    
    /**
     * Sets the "RECPMTRQ" element
     */
    public void setRECPMTRQ(net.ofx.types.x2003.x04.RecurringPaymentRequest recpmtrq)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentRequest)get_store().find_element_user(RECPMTRQ$0, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.RecurringPaymentRequest)get_store().add_element_user(RECPMTRQ$0);
            }
            target.set(recpmtrq);
        }
    }
    
    /**
     * Appends and returns a new empty "RECPMTRQ" element
     */
    public net.ofx.types.x2003.x04.RecurringPaymentRequest addNewRECPMTRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentRequest)get_store().add_element_user(RECPMTRQ$0);
            return target;
        }
    }
    
    /**
     * Unsets the "RECPMTRQ" element
     */
    public void unsetRECPMTRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(RECPMTRQ$0, 0);
        }
    }
    
    /**
     * Gets the "RECPMTMODRQ" element
     */
    public net.ofx.types.x2003.x04.RecurringPaymentModRequest getRECPMTMODRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentModRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentModRequest)get_store().find_element_user(RECPMTMODRQ$2, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "RECPMTMODRQ" element
     */
    public boolean isSetRECPMTMODRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(RECPMTMODRQ$2) != 0;
        }
    }
    
    /**
     * Sets the "RECPMTMODRQ" element
     */
    public void setRECPMTMODRQ(net.ofx.types.x2003.x04.RecurringPaymentModRequest recpmtmodrq)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentModRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentModRequest)get_store().find_element_user(RECPMTMODRQ$2, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.RecurringPaymentModRequest)get_store().add_element_user(RECPMTMODRQ$2);
            }
            target.set(recpmtmodrq);
        }
    }
    
    /**
     * Appends and returns a new empty "RECPMTMODRQ" element
     */
    public net.ofx.types.x2003.x04.RecurringPaymentModRequest addNewRECPMTMODRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentModRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentModRequest)get_store().add_element_user(RECPMTMODRQ$2);
            return target;
        }
    }
    
    /**
     * Unsets the "RECPMTMODRQ" element
     */
    public void unsetRECPMTMODRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(RECPMTMODRQ$2, 0);
        }
    }
    
    /**
     * Gets the "RECPMTCANCRQ" element
     */
    public net.ofx.types.x2003.x04.RecurringPaymentCancelRequest getRECPMTCANCRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentCancelRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentCancelRequest)get_store().find_element_user(RECPMTCANCRQ$4, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "RECPMTCANCRQ" element
     */
    public boolean isSetRECPMTCANCRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(RECPMTCANCRQ$4) != 0;
        }
    }
    
    /**
     * Sets the "RECPMTCANCRQ" element
     */
    public void setRECPMTCANCRQ(net.ofx.types.x2003.x04.RecurringPaymentCancelRequest recpmtcancrq)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentCancelRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentCancelRequest)get_store().find_element_user(RECPMTCANCRQ$4, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.RecurringPaymentCancelRequest)get_store().add_element_user(RECPMTCANCRQ$4);
            }
            target.set(recpmtcancrq);
        }
    }
    
    /**
     * Appends and returns a new empty "RECPMTCANCRQ" element
     */
    public net.ofx.types.x2003.x04.RecurringPaymentCancelRequest addNewRECPMTCANCRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.RecurringPaymentCancelRequest target = null;
            target = (net.ofx.types.x2003.x04.RecurringPaymentCancelRequest)get_store().add_element_user(RECPMTCANCRQ$4);
            return target;
        }
    }
    
    /**
     * Unsets the "RECPMTCANCRQ" element
     */
    public void unsetRECPMTCANCRQ()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(RECPMTCANCRQ$4, 0);
        }
    }
}
